#include <sys_head.h>

int main(int argc, char const *argv[])
{
    int pid = fork();
    if (pid == 0) // 子进程
    {
        int i = 0;
        while (i < 100)
        {
            i++;
            // if (i == 3) // 人为制造错误，原本计划循环100次
            // {
            //     break;
            // }
            printf("我是子进程\n");
        }
        if (i != 100)
        {
            return 1; // 说明程序非正常退出
        }
    }
    else if (pid > 0) // 父进程
    {
        printf("子进程的ID号为:%d\n", pid);
        int ret = -1;
        wait(&ret); // 等待子进程结束或者任意消息，否则会一直卡在这里等
        if (ret != 0)
        {
            printf("子进程非正常推出了，退出码是：%d\n", ret);
        }
        else
        {
            printf("看来子进程结束了,退出码是：%d\n", ret);
        }
    }
    return 0;
}
